package com.ruoyi.security.service;

import com.ruoyi.security.domain.SecurityDayMinuteTrade;
import com.ruoyi.security.domain.SecurityTradingCalendar;
import com.ruoyi.security.dto.SecurityDayMinuteTradeDto;
import com.ruoyi.security.dto.SyncSecurityDayMinuteTradeDto;

import java.util.List;

/**
 * @author yeoman
 * @date 2025/4/30 17:10
 * @description
 */
public interface ISecurityDayMinuteTradeService {

    /**
     * 查询证券日分钟交易列表
     * @param dto 查询证券日分钟交易条件
     * @return 证券日分钟交易列表
     */
    List<SecurityDayMinuteTrade> list(SecurityDayMinuteTradeDto dto);

    /**
     * 同步证券日分钟交易列表（异步）
     * @param dto 同步证券日分钟交易列表dto
     * @return 同步结果
     */
    String syncListAsync(SyncSecurityDayMinuteTradeDto dto);

    /**
     * 同步证券日分钟交易列表
     * @param dto 同步证券日分钟交易列表dto
     */
    void syncList(SyncSecurityDayMinuteTradeDto dto);

    /**
     * 获取缺失或不完整的交易日列表
     * @param symbol 证券代码
     * @param tradingDays 交易日列表
     * @param tradeList 交易数据列表
     * @return 数据缺失或不完整的交易日列表（格式：yyyy-MM-dd）
     */
    List<String> getInvalidTradeDates(String symbol, List<SecurityTradingCalendar> tradingDays, 
                                       List<SecurityDayMinuteTrade> tradeList);

}
